利用stream对list集合中的bigdecimal进行分组求和,均值,最大值,最小值 您所在的位置:网站首页 java 四舍五入 利用stream对list集合中的bigdecimal进行分组求和,均值,最大值,最小值

利用stream对list集合中的bigdecimal进行分组求和,均值,最大值,最小值

#利用stream对list集合中的bigdecimal进行分组求和,均值,最大值,最小值| 来源: 网络整理| 查看: 265

Java8原生只提供了summingInt、summingLong、summingDouble三种基础类型的方法,想要对BigDecimal类型的数据操作需要自己新建工具类如下:

案例代码

简单的方式取值:

BigDecimal totalPrice = list.stream().map(ProductA::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);

创建一个函数式接口:

package utils; import java.math.BigDecimal; @FunctionalInterface public interface ToBigDecimalFunction { BigDecimal applyAsBigDecimal(T value); }

  创建工具类

package utils; import java.math.BigDecimal; import java.util.Collections; import java.util.Set; import java.util.function.BiConsumer; import java.util.function.BinaryOperator; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collector; public class CollectorsUtil { static final Set CH_NOID = Collections.emptySet(); private CollectorsUtil() { } @SuppressWarnings("unchecked") private static Function castingIdentity() { return i -> (R) i; } static class CollectorImpl implements Collector { private final Supplier supplier; private final BiConsumer accumulator; private final BinaryOperator combiner; private final Function finisher; private final Set characteristics; CollectorImpl(Supplier supplier, BiConsumer accumulator, BinaryOperator combiner, Function finisher, Set characteristics) { this.supplier = supplier; this.accumulator = accumulator; this.combiner = combiner; this.finisher = finisher; this.characteristics = characteristics; } CollectorImpl(Supplier supplier, BiConsumer accumulator, BinaryOperator combiner, Set characteristics) { this(supplier, accumulator, combiner, castingIdentity(), characteristics); } @Override public BiConsumer accumulator() { return accumulator; } @Override public Supplier supplier() { return supplier; } @Override public BinaryOperator combiner() { return combiner; } @Override public Function finisher() { return finisher; } @Override public Set characteristics() { return characteristics; } } //求和方法 public static Collector summingBigDecimal(ToBigDecimalFunction


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有